diff --git a/system/libraries/Encryption.php b/system/libraries/Encryption.php
index 3c13475..2d3f82d 100644
--- a/system/libraries/Encryption.php
+++ b/system/libraries/Encryption.php
@@ -148,7 +148,7 @@
 		{
 			if (isset($this->_drivers[$params['driver']]))
 			{
-				if ($this->_driver[$params['driver']])
+				if ($this->_drivers[$params['driver']])
 				{
 					$this->_driver = $params['driver'];
 				}
@@ -264,7 +264,7 @@
 				? $this->_cipher
 				: $this->_cipher.'-'.$this->_mode;
 
-			if ( ! in_array($handle, openssl_get_cipher_methods, TRUE))
+			if ( ! in_array($handle, openssl_get_cipher_methods(), TRUE))
 			{
 				$this->_handle = NULL;
 				log_message('error', 'Encryption: Unable to initialize OpenSSL with method '.strtoupper($handle).'.');
@@ -364,7 +364,7 @@
 		mcrypt_generic_deinit($params['handle']);
 		if ($params['handle'] !== $this->_handle)
 		{
-			mcrypt_module_close($handle);
+			mcrypt_module_close($params['handle']);
 		}
 
 		return $data;
@@ -452,7 +452,8 @@
 
 		if ( ! isset($params['iv']))
 		{
-			if ($iv_size)
+			$iv_size = $this->{'_'.$this->_driver.'_get_iv_size'}($params['handle']);
+			if ($iv_size = $this->{'_'.$this->_driver.'_get_iv_size'}($params['handle']))
 			{
 				$params['iv'] = substr($data, 0, $iv_size);
 				$data = substr($data, $iv_size);
@@ -500,7 +501,7 @@
 		mcrypt_generic_deinit($params['handle']);
 		if ($params['handle'] !== $this->_handle)
 		{
-			mcrypt_module_close($handle);
+			mcrypt_module_close($params['handle']);
 		}
 
 		// Remove PKCS#7 padding
@@ -607,7 +608,7 @@
 	{
 		if (empty($params))
 		{
-			return isset($this->_cipher, $this->_mode, $params->_key, $this->_handle)
+			return isset($this->_cipher, $this->_mode, $this->_key, $this->_handle)
 				? array(
 					'handle' => $this->_handle,
 					'cipher' => $this->_cipher,
@@ -714,14 +715,16 @@
 		{
 			$dictionary = array(
 				'mcrypt' => array(
-					'rijndael-128',
-					'tripledes',
-					'arcfour'
+					'aes-128' => 'rijndael-128',
+					'aes-192' => 'rijndael-128',
+					'aes-256' => 'rijndael-128',
+					'des3-ede3' => 'tripledes',
+					'rc4-40' => 'arcfour'
 				),
 				'openssl' => array(
-					'aes-128',
-					'des-ede3',
-					'rc4-40'
+					'rijndael-128' => 'aes-128',
+					'tripledes' => 'des-ede3',
+					'arcfour' => 'rc4-40'
 				)
 			);
 
@@ -746,12 +749,9 @@
 			// All compatibility tests were done in CBC mode.
 		}
 
-		$dialect = ($this->_driver === 'mcrypt')
-			? 'openssl'
-			: 'mcrypt';
-		if (($index = array_search($cipher, $dictionary[$dialect], TRUE)) !== FALSE)
+		if (isset($dictionary[$this->_driver][$cipher]))
 		{
-			$cipher = $dictionary[$this->_driver][$index];
+			$cipher = $dictionary[$this->_driver][$cipher];
 		}
 	}
 
